iT邦幫忙

2025 iThome 鐵人賽

DAY 16
0

什麼是規格驅動開發?

傳統軟體開發:多從撰寫程式碼開始。

規格驅動開發:先定義「做什麼 (What)」和「為什麼做 (Why)」,再考慮「如何實現 (How)」

這意味著在實際編碼前,團隊需先明確:

  • 專案目標
  • 功能需求
  • 約束條件

這不僅是一份需求文件,更是一種系統化的思考過程,確保團隊成員對最終產品有共同理解。

SDD 類似 提示工程 (Prompt Engineering) 的進化版,透過規格引導 AI 建構符合預期的軟體。特別適合大型企業與「App 工廠」模式 —— 一套標準(如後端 .NET、前端 React),能快速開發數百個應用程式;技術棧改變時,僅需修改「如何」的部分,「做什麼」與「為什麼」保持穩定,提升靈活性與可維護性。


規格驅動開發的核心要素

GitHub Spec Kit 提出了 SDD 的三大核心要素 :

  1. 規格 (Specify)
    • 定義功能規格,聚焦於 做什麼為什麼做
    • 描述建構目標,但不涉及技術細節。
  2. 計畫 (Plan)
    • 關注 如何實現
    • 包含:技術棧、資料庫、架構設計、效能考量。
    • 提供專案結構與程式碼骨架。
  3. 任務 (Tasks)
    • 將計畫拆分為可執行的最小單元(提示詞檔案)。
    • 範例:
      • 建立前端
      • 加入 TypeScript
      • 撰寫劇集模式驗證測試
  4. 憲法系統 (Constitutional System)
    • 核心約束框架,定義必須遵循的標準:
      • 測試要求
      • 開發流程
      • 技術選擇
      • 品質規範

規格驅動開發的優勢

  • 🚀 提高效率與一致性:規格 + AI 協作 → 減少重複工作,確保團隊一致性。
  • 🧹 降低技術債務:早期發現問題,避免需求模糊導致返工。
  • 🔧 增強可維護性與擴展性:只需調整「如何」,「做什麼/為什麼」保持穩定。
  • 🤝 促進團隊協作:規格作為共通語言,減少誤解。
  • 🤖 優化 AI 協作:結構化規格讓 AI 生成更精準,避免偏離。

規格驅動未來展望

  • 強調 持續迭代與規格更新
  • 開發者角色轉變:
    • 從「程式碼編寫者」
    • → 「意圖設計者」與「資訊建築師」。
  • 隨 AI 成熟,SDD 有望成為主流,推動智慧協作時代。

規格驅動開發與其他 AI 開發方法比較

特性 規格驅動開發 (SDD) 上下文工程 (Context Engineering) 規範化編程 (Normalized Programming)
核心理念 先定義「做什麼 / 為什麼」,再考慮「如何」 專注「如何更好與 AI 溝通」 聚焦「如何明確我們真正想要什麼」
主要目標 結構化規格引導 AI 精確建構軟體 優化輸入,利用長期記憶動態管理歷史資料 以規範文件清晰表達意圖與價值,嵌入模型訓練
解決問題 傳統開發痛點,提升效率與品質 智能體失敗源於上下文不足 AI 開發問題源於人類目標模糊
開發者角色 意圖設計者、資訊建築師 資訊建築師 規範編寫者
關注點 明確「做什麼 / 為什麼」 優化「怎麼做」 澄清「做什麼」

總結

  • 規格驅動開發 (SDD):強調 規格先行,讓 AI 按規格構建軟體。
  • 上下文工程 (Context Engineering):專注於 輸入優化
  • 規範化編程 (Normalized Programming):專注於 意圖澄清

三者雖然切入點不同,但共同挑戰傳統 提示詞工程的侷限性,並推動開發者角色進化為 意圖設計者,開啟 AI 協作的軟體開發新時代

參考資料

  1. GitHub Spec Kit
  2. Spec-Driven Development: The Key to Scalable AI Agents
  3. SDD 規格驅動開發 - Rico's Note
  4. 規格驅動開發:讓AI 真正理解你想要什麼 - iT 邦幫忙
  5. 與 Context 的差異 - 提供的資料

上一篇
Day 15 - Context Engineering part2
下一篇
Day 17 - 實務上好用的方法,SDD
系列文
Android 不會只更新 UI ! 用 Vibe Coding ? 加速打造 Al-native App18
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言